﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Autocentro.Entities;
using Autocentro.Respository;
using Microsoft.Practices.Unity;

namespace Autocentro.BussinesLogic
{
    public class ProductoTipoVehiculoBL:IProductoTipoVehiculoBL
    {
        [Dependency]
        public IProductoTipoVehiculoRepository productotipovehiculorepository { get; set; }

        public List<PRODUCTO_TIPO_VEHICULO> GetAllFromProductoTipoVehiculoByTipoVehiculo(int idtipovehiculo)
        {
            return productotipovehiculorepository.GetAllFromProductoTipoVehiculoByTipoVehiculo(idtipovehiculo);
        }

        public List<PRODUCTO_TIPO_VEHICULO> GetFromProductoTipoVehiculoByTipoVehiculoIdAndDescripcionProducto(int idtipovehiculo, string criterio)
        {
            return productotipovehiculorepository.GetFromProductoTipoVehiculoByTipoVehiculoIdAndDescripcionProducto(idtipovehiculo,criterio);
        }

        public PRODUCTO_TIPO_VEHICULO GetFromProductoTipoVehiculoByTipoVehiculoIdAndProductoId(int idtipovehiculo, int idproducto)
        {
            return productotipovehiculorepository.GetFromProductoTipoVehiculoByTipoVehiculoIdAndProductoId(idtipovehiculo,idproducto);
        }

        public void AddProductoTipoVehiculo(PRODUCTO_TIPO_VEHICULO productotipovehiculo)
        {
            var msg = "";
            var ok = productotipovehiculo.Validate(out msg);
            if (ok)
            {
                productotipovehiculorepository.AddProductoTipoVehiculo(productotipovehiculo);
            }
            else
            {
                throw new Exception(msg);
            }
        }

        public void UpdateProductoTipoVehiculo(PRODUCTO_TIPO_VEHICULO productotipovehiculo)
        {
            var msg = "";
            var ok = productotipovehiculo.Validate(out msg);
            if (ok)
            {
                productotipovehiculorepository.UpdateProductoTipoVehiculo(productotipovehiculo);
            }
            else
            {
                throw new Exception(msg);
            }
        }

        public void RemoveProductoTipoVehiculo(int id)
        {
            productotipovehiculorepository.RemoveProductoTipoVehiculo(id);
        }

        public PRODUCTO_TIPO_VEHICULO GetFromProductoTipoVehiculoById(int id)
        {
            return productotipovehiculorepository.GetFromProductoTipoVehiculoById(id);
        }
    }
}
